unit ListadoPaquetesUt;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons,
  frxClass, frxExportXLS, frxDBSet, Data.DB, MemDS, DBAccess, Uni, frxExportPDF;

type
  TListadoPaquetes = class(TForm)
    pnlTitulo: TPanel;
    lblConsulta: TLabel;
    pnlDatos: TPanel;
    rgDatos: TGroupBox;
    lblPaquete: TLabel;
    dbCodigoPaquete: TEdit;
    btnBuscarPaquete: TBitBtn;
    dbDescPaquete: TEdit;
    btnListado: TBitBtn;
    btnCerrar: TBitBtn;
    qryNombrePaquete: TUniQuery;
    qryListado: TUniQuery;
    frxDSListado: TfrxDBDataset;
    frxListado: TfrxReport;
    frxPDFListado: TfrxPDFExport;
    frxDSSubReporte1: TfrxDBDataset;
    frxDSSubReporte2: TfrxDBDataset;
    qryFechas: TUniQuery;
    qryOpciones: TUniQuery;
    qryListadoID_PAQUETE_TURISTICO: TIntegerField;
    qryListadoDENOMINACION: TStringField;
    qryListadoNOMBRE_CAMPANHA: TStringField;
    qryListadoITINERARIO: TMemoField;
    qryListadoCANTIDAD_DIAS: TIntegerField;
    qryFechasID_PAQUETE_TURISTICO: TIntegerField;
    qryFechasFECHA_PARTIDA: TDateField;
    qryFechasFECHA_LLEGADA: TDateField;
    qryNombrePaqueteID_PAQUETE_TURISTICO: TIntegerField;
    qryNombrePaqueteDENOMINACION: TStringField;
    qryOpcionesO_ID_PAQUETE_TURISTICO: TIntegerField;
    qryOpcionesO_OPCION: TIntegerField;
    qryOpcionesO_HOSPEDAJE: TStringField;
    qryOpcionesO_SERVICIO: TStringField;
    qryOpcionesO_COSTO: TFloatField;
    qryOpcionesO_INC_DESAYUNO: TStringField;
    qryOpcionesO_INC_ALMUERZO: TStringField;
    qryOpcionesO_INC_CENA: TStringField;
    procedure btnCerrarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure btnBuscarPaqueteClick(Sender: TObject);
    procedure btnListadoClick(Sender: TObject);
    procedure dbCodigoPaqueteExit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ListadoPaquetes: TListadoPaquetes;

implementation

{$R *.dfm}

uses DMTuristikUt;

procedure TListadoPaquetes.btnBuscarPaqueteClick(Sender: TObject);
begin
  dbCodigoPaquete.Text := ShowBuscarPaquetesListado('');
  dbCodigoPaqueteExit(Self);
end;

procedure TListadoPaquetes.btnCerrarClick(Sender: TObject);
begin
  Self.Close;
end;

procedure TListadoPaquetes.btnListadoClick(Sender: TObject);
begin
  if ((dbDescPaquete.Text <> '<< SELECCIONAR UN PAQUETE TURISTICO >>') and (dbDescPaquete.Text <> EmptyStr)) then
  begin
    qryListado.Close;
    qryFechas.Close;
    qryOpciones.Close;
    qryListado.Params.ParamByName('v_id_paquete').AsInteger := StrToInt(dbCodigoPaquete.Text);
    qryFechas.Params.ParamByName('v_id_paquete').AsInteger := StrToInt(dbCodigoPaquete.Text);
    qryOpciones.Params.ParamByName('I_ID_PAQUETE').AsInteger := StrToInt(dbCodigoPaquete.Text);
    qryListado.Open;
    qryFechas.Open;
    qryOpciones.Open;
    frxListado.ShowReport();
  end
  else
  begin
    ShowMessage('Debe seleccionar un paquete turistico.');
    btnBuscarPaquete.SetFocus;
    Exit;
  end;
end;

procedure TListadoPaquetes.dbCodigoPaqueteExit(Sender: TObject);
var
  vWherePaquete : String;
begin
  vWherePaquete := '';
  if dbCodigoPaquete.Text <> EmptyStr then
  begin
    qryNombrePaquete.Close;
    vWherePaquete := ' pt.estado_registro = ''A'' and pt.id_paquete_turistico = ' + dbCodigoPaquete.Text;
    ReemplazarWhere(qryNombrePaquete.SQL, vWherePaquete);
    qryNombrePaquete.Open;
    if not qryNombrePaquete.IsEmpty then
    begin
      dbDescPaquete.Text := qryNombrePaqueteDENOMINACION.AsString;
      dbCodigoPaquete.Text := qryNombrePaqueteID_PAQUETE_TURISTICO.AsString;
    end
    else
    begin
      dbCodigoPaquete.Text := '0';
      dbDescPaquete.Text := '<< SELECCIONAR UN PAQUETE TURISTICO >>';
      Exit;
    end;
  end;
end;

procedure TListadoPaquetes.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  qryNombrePaquete.Close;
  qryListado.Close;
  qryFechas.Close;
  qryOpciones.Close;
  Action := caFree;
end;

procedure TListadoPaquetes.FormShow(Sender: TObject);
begin
  dbDescPaquete.Text := '<< SELECCIONAR UN PAQUETE TURISTICO >>';
  dbCodigoPaquete.Clear;
  btnBuscarPaquete.SetFocus;
end;

end.
